2 Call - By - Push - Value

نویسنده

  • Paul Blain Levy
چکیده

Call-by-push-value (CBPV) is a new programming language paradigm, based on the slogan “a value is, a computation does”. We claim that CBPV provides the semantic primitives from which the call-by-value and call-by-name paradigms are built. The primary goal of the thesis is to present the evidence for this claim, which is found in a remarkably wide range of semantics: from operational semantics, in big-step form and in machine form, to denotational models using domains, possible worlds, continuations and games. In the first part of the thesis, we come to CBPV and its equational theory by looking critically at the call-by-value and call-by-name paradigms in the presence of general computational effects. We give a Felleisen/Friedman-style CK-machine semantics, which explains how CBPV can be understood in terms of push/pop instructions. In the second part we give simple CBPV models for printing, divergence, global store, errors, erratic choice and control effects, as well as for various combinations of these effects. We develop the store model into a possible world model for cell generation, and (following Steele) we develop the control model into a “jumping implementation” using a continuation language called JumpWith-Argument (JWA). We present a pointer game model for CBPV, in the style of Hyland and Ong. We see that the game concepts of questioning and answering correspond to the CBPV concepts of forcing and producing respectively. We observe that this game semantics is closely related to the jumping implementation. In the third part of the thesis, we study the categorical semantics for the CBPV equational theory. We present and compare 3 approaches: models using strong monads, in the style of Moggi; models using value/producer structures, in the style of Power and Robinson; models using (strong) adjunctions. All the concrete models in the thesis are seen to be adjunction models. Submitted for the degree of Doctor of Philosophy Queen Mary and Westfield College, University of London 2001

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Call-by-Push-Value: A Subsuming Paradigm

Call-by-push-value is a new paradigm that subsumes the call-by-name and call-by-value paradigms, in the following sense: both operational and denotational semantics for those paradigms can be seen as arising, via translations that we will provide, from similar semantics for call-by-push-value. To explain call-by-push-value, we rst discuss general operational ideas, especially the distinction be...

متن کامل

Call-By-Push-Value: A Functional/Imperative Synthesis

Reading is a hobby to open the knowledge windows. Besides, it can provide the inspiration and spirit to face this life. By this way, concomitant with the technology development, many companies serve the e-book or book in soft file. The system of this book of course will be much easier. No worry to forget bringing the call by push value a functional imperative synthesis book. You can open the de...

متن کامل

Probabilistic call by push value

We introduce a probabilistic extension of Levy’s Call-By-Push-Value. This extension consists simply in adding a “flipping coin” boolean closed atomic expression. This language can be understood as a major generalization of Scott’s PCF encompassing both call-by-name and call-by-value and featuring recursive (possibly lazy) data types. We interpret the language in the previously introduced denota...

متن کامل

Effects in Call-By-Push-Value, from a Linear Logic point of view

We define and study a non deterministic extension of Call-By-Push-Value (CBPV) for which we prove an Adequacy and Full Abstraction theorem with respect to a Scott semantics of classical Linear Logic (LL). We also consider an extension of CBPV with a general notion of global state for which we propose a simple LL-based Scott denotational semantics and prove an adequacy result.

متن کامل

Call-by-push-value: Decomposing call-by-value and call-by-name

We present the call-by-push-value (CBPV) calculus, which decomposes the typed call-by-value (CBV) and typed call-by-name (CBN) paradigms into fine-grain primitives. On the operational side, we give big-step semantics and a stack machine for CBPV, which leads to a straightforward push/pop reading of CBPV programs. On the denotational side, we model CBPV using cpos and, more generally, using alge...

متن کامل

Adjunction Models For Call-By-Push-Value With Stacks

Call-by-push-value is a ”semantic machine code”, providing a set of simple primitives from which both the call-by-value and call-by-name paradigms are built. We present its operational semantics as a stack machine, suggesting a term judgement of stacks. We then see that CBPV, incorporating these stack terms, has a simple categorical semantics based on an adjunction between values and stacks. Th...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2002